from oca.models import *

def is_registered_to_contest(contest, user):
    return user in contest.participantes.all()

def lef_time(contest, user):
    """
    Retorna el tiempo restante en segundos para un usuario en una competencia
    """
    if not is_registered_to_contest(contest, user):
        return 0
    solutions = Solucion.objects.filter(competencia=contest, participante=user)
    if (solutions):
        lower = solutions[0].inicio #sucks
        for s in solutions:
            if s.inicio<lower:
                lower = s.inicio
        delta = datetime.timedelta(minutes=+contest.tiempo)
        endtime = lower + delta
        now = datetime.datetime.now()
        left = endtime - now #delta
        left = left.seconds
        return left
    else:
        return contest.tiempo*60

def has_time(contest, user):
    """
    Retorna aun tiene tiempo para resolver algun problema, en caso de no estar registrado retorna false
    """
    return lef_time(contest, user) > 0